fold op init [] = init
fold op init (x:xs) = x `op` fold op init xs

revOp x xs = xs ++ [x]